Two network devices that are linked to communicate with each other may operate in a half-duplex mode or a full-duplex mode. Operation in a half-duplex mode refers to only one of the network devices transmitting frames of data (hereinafter referred to as “frames”) at any moment in time. Operation in a full-duplex mode refers to the first network device transmitting frames to the second network device while the second network device is transmitting frames to the first network device.
Duplex mismatch can occur between linked network devices communicating with each other over a network (e.g., an Ethernet local area network) and operating in different duplex modes. For example, a first network device can operate in a half-duplex mode while a second network device is operating in a full-duplex mode. The first network device cannot send frames to the second network device while the second network device is sending frames to the first network device. In addition, the second network device can at any moment in time send frames to the first network device regardless of whether the first network device is sending frames to the second network device. This causes collisions between signals transmitted between the network devices and results in receiver errors at the first network device for the frames transmitted from the second network device (forced full duplex network device). This is because the second network device can only receive a portion of the frames transmitted by the first network device as a result of transmission by the first network device being cut off by transmission from the second network device.
Due to the duplex mismatch, few frames, transmitted from the first network device operating in the half-duplex mode, are successfully transmitted and received at the second network device operating in the full-duplex mode. During a period of duplex mismatch, data transfer rates for successful transmissions can be as low as 1% of a maximum transfer rate or available bandwidth. During a period of duplex mismatch, the data transfer rate may be 1 Mb/s. Thus, duplex mismatch can result in slow data transfer rates and/or corresponding stalling problems.
Duplex mismatch can occur often due to the protocols executed according to Institute of Electrical and Electronic Engineers (IEEE) standards supporting category (CAT) 3, 5 and 5e twisted pair cables for establishing a link between network devices. These standards have evolved. Initially the only Ethernet standard for establishing a link over a twisted-pair cable was 10BASE-T (referring to a data transfer rate of 10 Mb/s). Network devices using the 10BASE-T standard operated only in the half-duplex mode. Operation in the full-duplex mode was then developed to increase network performance. This included allowing operation in the full-duplex mode only if both network devices communicating with each other were capable of operating in the full-duplex mode. Auto-negotiation was performed to determine if both network devices were capable of operating in the full-duplex mode. Auto-negotiation includes the network devices exchanging information to determine the transmission capabilities of each other and to negotiate, for example, a transmission speed at which the network devices are to transmit frames. The exchanged information of each of the network devices can include maximum transmission speeds, communication protocols, communication channels, etc.
Rules were developed to insure interoperability of new equipment with pre-existing equipment. For example, network devices capable of operating in the full-duplex mode were designed to also communicate with devices operating in the half-duplex mode. One of the rules included a first network device, capable of operating in the full-duplex mode, operating in the half-duplex mode if a link partner (or second network device) does not auto-negotiate. This insured backwards compatibility with network devices that only operated in the half-duplex mode and did not support auto-negotiation.
As technology evolved, Fast Ethernet (or 100BASE-TX) became an IEEE standard for transmitting at 100 Mb/s. The first devices capable of supporting Fast Ethernet only operated in the half-duplex mode and did not auto-negotiate. These first devices performed a “parallel detect” procedure to allow the first devices to communicate with other devices at a correct speed (e.g., 10 Mb/s or 100 Mb/s). Parallel detect allows a first network device to transmit and receive frames to and from a link partner at a particular speed without having previously performed auto-negotiation with the link partner. Parallel detect includes examining an idle pattern of a link between the first network device and the link partner and based on the detected pattern determining a speed at which to transmit data. Since transmission protocols for the 10 Mb/s and 100 Mb/s data transmission rates exhibit different idle patterns, a network device performing the parallel detect procedure can determine a speed at which the link partner is capable of communicating and transmit data at that speed (e.g., 10 Mb/s or 100 Mb/s).
Complexity of auto-negotiation can affect whether two link partners auto-negotiate correctly, which can cause interoperability problems. To address the interoperability problems associated with auto-negotiation, another rule was developed, which induced forcing (i.e. commanding) a network device to operate at a particular speed and in a particular duplex mode.
Although these rules solved the respective problems for which the rules were designed, the rules collectively created the problem of duplex mismatch. For example, duplex mismatch can occur if a first network device, capable of auto-negotiating, connects to a second network device performing a parallel detect procedure. To maximize performance, the second network device may perform the parallel detect procedure to force the second network device to communicate at a particular speed and in the full-duplex mode. Since the second network device is forced to operate in the full-duplex mode and does not auto-negotiate, the first network device assumes the lowest common operating mode and operates in a half-duplex mode. This results in poor performance because duplex mismatch occurs and the effective data transmission rate is low.
Table 1 shows six possible combinations of transmission speed and duplex mode and corresponding effective data transmission rates for links (i) operating under the 10BASE-T and 100BASE-TX standards, and (ii) using TCP/IP protocols.
TABLE 1RowLink Duplex Mode StateEffective Data#Speedof Link PartnersTransmission Rate1100 Mb/sBoth Link Partners Operating in 100 Mb/sFull-duplex Mode2100 Mb/sBoth Link Partners Operating in ~50Mb/sHalf-duplex Mode3 10 Mb/sBoth Link Partners Operating in 10Mb/sFull-duplex Mode4 10 Mb/sBoth Link Partners Operating in ~5Mb/sHalf-duplex Mode5100 Mb/sDuplex Mismatch~1Mb/s6 10 Mb/sDuplex Mismatch~0.1Mb/sIf only rows 1-4 of Table 1 are considered and both link partners perform a parallel detect procedure resulting in both link partners operating in full-duplex mode, then performing the parallel detect procedures provides good performance. However, if one of the link partners does not perform a parallel detect procedure and attempts to auto-negotiate, duplex mismatch can occur due to the one of the link partners ending up operating in the half-duplex mode. This can result in poor performance and the data transmission rates shown in rows 5-6 of Table 1. The data transmission rates shown in rows 5-6 of Table 1 are less than the data transmission rates for links properly configured for half-duplex operation (shown in rows 2 and 4 of Table 1).